package db_models

// MaxTime 一个月
var MaxTime int64 = 2592000000

type BorrowTable struct {
	ID         uint `json:"id"`
	BorrowerID uint `json:"borrower_id"`
	// 为BorrowerID添加默认外键
	Borrower Borrower `gorm:"foreignKey:BorrowerID"`

	BookID uint `json:"book_id"`
	// 为BookID添加默认外键
	Book Books `gorm:"foreignKey:BookID"`

	BooksNumberID uint `json:"book_number_id"`
	// 为BookUniqueID添加外键
	BooksNumber BooksNumber

	// 借书开始时间
	// 如果需要判断是否借书超时，就直接用 now_ts - start_time >= MaxTime 来判断就行了
	StartTime int64 `json:"start_time"`

	// 是否归还图书
	IsReturned bool `json:"is_returned" gorm:"default:false"`
	// 归还图书时间
	ReturnTime int64 `json:"return_time"`
}

// BorrowInfo 借书信息，用于给前端数据。
type BorrowInfo struct {
	BorrowTable BorrowTable `json:"borrow_table"`
	// 借书截止时间
	Deadline int64 `json:"deadline"`
	// 是否借书超时
	IsOverdue bool `json:"is_overdue"`
	// 罚款
	Fine int `json:"fine"`
}

// BorrowFine 借书信息+罚款，用于给前端数据。
type BorrowFine struct {
	BookUniqueID string
	Fine         int
}
